var ws = require("nodejs-websocket")
 
// Scream server example: "hi" -> "HI!!!"
var server = ws.createServer(function (conn) {
    //conn 当前的链接对象
    console.log("新的连接")
    //接收客户端传递的信息
    conn.on("text", function (info) {
        console.log("客户端传递的信息 "+info);
        let data = JSON.parse(info);
        switch (data.type) {
            case 'login':
                conn.nickname = data.info;
                broadcast({
                    type:'server',
                    info:data.info
                });
                break;
            case 'chart':
                broadcast({
                    type:'chart',
                    name:conn.nickname,    //聊天的人
                    info:data.info     //聊天的内容
                });
                break;
            default:
                break;
        }
        //服务器端给客户端发消息
        // conn.sendText(str.toUpperCase()+"!!!")
    })
    // conn.sendText('hello 服务器端给客户端发消息'+"!!!")
    //链接关闭会触发close事件
    conn.on("close", function (code, reason) {
        console.log("链接关闭============")
        broadcast({
            type:'quit',
            name:conn.nickname
        })
    })

    conn.on("error",function(error){
        console.log(error);
    })

    
}).listen(8001)

//广播
function broadcast(data){
    server.connections.forEach(conn => {
        console.log(data,"===data")
        conn.sendText(JSON.stringify(data))
    })
}



//try ...catch